Management often desires to have access to aggregated information such as the average time it takes to process an order, availability, a transaction count, sales volume of a specific product, and the like. Such aggregated information should be provided real-time for the management to take actions real-time if needed. However, in current systems, such aggregated information is typically provided as stored in a data warehouse or an SQL database. As the data warehouses are typically updated only few times a day, the data generally cannot be provided real-time.
Further, when the data is provided real-time, the management may not necessarily wish to continuously view changes to the aggregated data, but may instead wish to view only when a predetermined condition is satisfied by the aggregated data.
In addition, a representation of the data as a whole typically does not exist in the database. Instead, the database is formless, and data needed for such aggregation is typically spread through multiple different tasks, and on multiple different tables. This necessitates querying individual tasks and/or tables in the databases. Therefore, multiple queries typically have to be made to the tasks or tables (such as in the SQL data source) in order to obtain necessary data required for aggregation.
In order to access data real-time, the code typically must be modified. Any such modification of codes or ad hoc creation of new codes typically requires many code hours. Further, any such modification to the code may result in errors. For example, since the codes typically exist as a cluster of multiple instances, making changes to an instance may affect other instances. In addition, coding to meet orthogonal requirements of the management and/or operation may result in the requirement for one adversely affecting the other. Further, many data requirements are ad hoc, and therefore, modification of codes to meet data requirements may require multiple different modification of codes.